neroni.it 

Csv & Txt

Aggiornato: 18-01-2009      Home  

01-09-2008 --> JFROMCSV: Load CSV to Database   Help

Carica un file in formato CSV in un file di database.

E' una interfaccia verso il comando CPYFRMIMPF, troppo complesso per ricordarne i parametri le volte che serve.

Per il caricamento a tutti i costi c'e' anche un file fisico di comodo con 256 campi alfa lunghi 100. Poi un secondo con 163 campi lunghi 200. Con piu' di 163 campi x 200 caratteri si sfonderebbe la lunghezza massima di un record.

Ricordo che il formato di file ".csv" si puo' ottenere scaricando da Excel.

01-09-2008 --> JTOCSV: Unload Database to CSV   Help

Scarica un file in formato CSV da un file di database.

Nonostante i delimitatori di campo alfanumerico, se il file csv ottenuto si carica poi in Excel, gli alfanumerici contenenti solo cifre contigue vengono interpretati erroneamente come numeri. Il risultato migliora se si segue la strada dell'importazione definendo testo le colonne problematiche. Il problema non si manifesta invece in Access.

E' una interfaccia verso il comando CPYTOIMPF che scrive nell'IFS ed e' simmetrico a JFROMCSV.

24-11-2008 Troncati i blank in coda ai primi due record dello scarico con nomi campi (record 1) e testi campi (record 2).

17-12-2008 Introdotta scelta sullo scarico delle intestazioni nel file csv: nomi campi, testi campi, entrambi o niente.

28-01-2009 Introdotta malvolentieri la parola chiave STRDLM "Delimitatore stringa" per soddisfare le paturnie di un utente. Il parametro e' il semplice affioramento dell'omonimo presente nel Copy To Import File chiamato dentro l'utility. Qualche complicazione invece nell'rpg che compone le righe di intestazione.

29-01-2009 Tolto dalle intestazioni il punto e virgola in fondo alla stringa che provocava una colonna in piu' se il file csv veniva caricato da Access. Excel invece non aveva problema.

14-01-2009 --> JFROMTXT: Load TXT to Database   

Carica un file in formato TXT da IFS a un file di database.

E' un'altra interfaccia verso il comando CPYFRMIMPF ma il file da caricare e' in formato TXT.

Per il caricamento ci sono anche un file fisico di comodo con un campo alfa lungo 1000 e un secondo con campo lungo 2000. Nulla vieta di farne altri piu' lunghi, con limite la lunghezza massima di un record.

Capace anche di andare in aggiunta.

18-01-2009 Liberalizzata l'estensione dei file di testo.

23-01-2009 Appena andato in produzione su una macchina con piu' processori, si e' scoperto che i recors arrivano in disordine. Cambiando nel CPYFRMIMPF la parola chiave ERRLVL dal default "*NOMAX" a "0", l'ordine di arrivo e' stato ristabilito ma non con chiarezza teorica. Direi che il CPYFRMIMPF (che denuncia con un mazzo di messaggi di essere un figlio minus habens dell'sql) e' una boiata che non regge le calzette all'FTP. Ma i figli non si abbandonano e l'ho salvato dalla rupe Tarpea, io affogatore pentito di gattini in eccesso che mio padre gattaro non aveva il coraggio di eliminare di persona. Come stigmatizzato nel thread Comportamento inaspettato in CPYFRMIMPF. Temo naturalmente problemi anche sugli altri usi inconsapevoli di sql che ho fatto chiamando sia CPYFRMIMPF che CPYTOIMPF.

01-09-2008 --> JTOTXT: Unload Database to TXT   

Scarica un file in formato TXT da un file di database

E' un'altra interfaccia verso il comando CPYTOIMPF ma lo scarico nell'IFS e' in formato TXT.

Per cortocircuitare i capricci dello scarico diretto, utilizza i file di transito generati da JZONF (File Zoner).

Grazie ai file di transito, lo scarico nell'IFS e' indenne da tutte le arbitrarie invenzioni di tracciato di uno scarico diretto.

05-08-2009 Introdotto il parametro WRKLIB (Work Library) per contenere un file intermedio omonimo dell'originale che prima veniva sempre piazzato in QTEMP creando un inciampo a chi voleva scaricare su IFS un file di estrazione preparato, come giusto, proprio in libreria temporanea. Come emerso nel thread Trasferimento file a Ifs.

14-01-2009 --> JLINK: Display Link   Help

Genera su file di emissione l'elenco IFS dei file presenti in un indirizzario.

Il comando e' una semplice interfaccia verso il DSPLNK che non genera alcun file di emissione. L'emissione su stampa di tale comando viene riletta e interpretata per generare un file di emissione, utile per elaborare facilmente l'elenco dei file contenuti nell'indirizzario scelto.

JLINK fa uso di JCPYCLR (Copy Clear).

ATTENZIONE: Per un release diverso da quelli previsti (V5R4M0 italiano, V5R3M0 italiano, V5R3M0 inglese) aggiungere nelle schiere le immagini prese dalla stampa e controllare il tracciato di lettura nel pgm JLINKD.

Questa prima versione e' un fulmine ma penso che prossimamente ne scrivero' una meno sensibile ai release trattando l'output di un comando "ls" chiamato da "STRQSH", secondo il suggerimento di Toninelli sul thread Outfile per Display Link.

18-01-2009 Aggiunti nel tracciato del file di emissione anche "nome senza estensione" ed "estensione".

18-01-2009 --> JLODTXT: Load Text   

E' un programma molto mirato di caricamento da IFS ad un solo file di database di un gruppo di file di testo giacenti in un unico indirizzario, gruppo individuato da un nome generico e da un numero esatto e richiesto di file.

Copiato un file, lo rinomina aggiungendo un "$" all'estensione.

E' un prototipo d'uso di JLINK (Display Link) e di JFROMTXT (Load TXT to Database) e la ragione per la quale questi ultimi due hanno visto la luce.

01-09-2008 --> JZONF: File Zoner   

Sulla base di un file di database, costruisce due file di comodo.

Il primo con i campi segnati al posto di impaccati e binari.

Il secondo "piatto", cioe' con un unico campo lungo come tutto il record del primo.

L'utility serve solo come prerequisito per JZONL (Library Zoner) e per JTOTXT (Unload Database to TXT).

01-09-2008 --> JZONL: Library Zoner   

Data una LIBRERIA qualunque di dati, crea un indirizzario IFS di nome $LIBRERIA contenente i file in formato txt, sbinati e disimpaccati, cioe' piatti.

JZONL viene chiamato da JZONG (Group Zoner) ma puo' essere usato anche da solo.

17-12-2008 JZONL Chiama anche JTOCSV (Unload Database to CSV) per scaricare i tracciati anche in formato csv.

01-09-2008 --> JZONG: Group Zoner   

JZONGI Trascrive un gruppo di librerie in IFS

JZONGZ Zippa IFS generato

Il comando JZONGI, dato un elenco di librerie dati, chiama su ciascuna JZONL, copiandone i file in IFS.

04-12-2008 Il comando JZONGZ zippa a bordo dell'As400 gli indirizzari IFS ottenuti con JZONGI. Per adesso non si occupa di spostare su PC i file zippati, cosa da fare a mano.

Il travaso manuale e' molto facile se l'IFS e' definito come drive del PC, ad esempio:

net use w: \\SISTEMA\home PASSWORD /user:UTENTE /persistent:yes

Nota che /persistent:yes e' facoltativo e memorizza stabilmente il collegamento, riattivato percio' alla riaccensione.

L'elenco dei gruppi di librerie da scaricare in IFS si trova in un file di personalizzazione: JZONGLIB.

20-11-2008 Il comando JZONGI LIBGRP(*MNG) chiama WRKDBF sul file di personalizzazione. Se *DFU, chiama un dfu estemporaneo.

JZONGI fa uso di JZONL (Library Zoner) che, a sua volta, fa uso di JZONF (File Zoner).

04-12-2008 JZONGZ fa uso di JZIP (Zip).

17-12-2008 Gettato il vecchio JZONGP che copiava da IFS a PC gli indirizzari non ancora compressi.